const router = require('koa-router')()
const userService = require('../controllers/mySqlConfig')

router.prefix('/users')

// 定义登录接口
router.post('/userLogin', async(ctx, next) => {
  let _username = ctx.request.body.username
  let _userpwd = ctx.request.body.userpwd
  // console.log(_username, _userpwd);  
  // 去数据库匹配账号密码是否准确
  await userService.userLogin(_username,_userpwd)
  .then(res => {
    // console.log(res);
    if(res.length) {
      let result = {
        id: res[0].id,
        nickname:res[0].nickname,
        username:res[0].username
      }
      ctx.body = {
        code: 200,
        data:result,
        mess: '登录成功'
      }
    } else {
      ctx.body = {
        code: 404,
        data:'error',
        mess: '账号或密码错误'
      }
    }
  })
  .catch(err => {
    // console.log(err);
    ctx.body = {
      code: 404,
      data:err
    }
  })
})

// 注册接口
router.post('/userRegister', async(ctx, next) => {
  // 拿到前端输入的参数，先比对数据库里面是否已经存在相同的数据（账号），如果没有则将数据存入
  let _username = ctx.request.body.username
  let _userpwd = ctx.request.body.userpwd
  let _nickname = ctx.request.body.nickname
  if (!_nickname || !_username || !_userpwd) {
    ctx.body = {
      code: 400,
      data: 'error',
      mess: '不可为空'
    }
  }

  await userService.findUser(_username)
  .then(async (res) =>{
    console.log(res,'------');
    if(res.length){     // 有长度则说明数据库里存在该账号 则不允许注册
      ctx.body = {
        code: 400,
        data: 'error',
        mess: '账号已存在'
      }
    }else{
      // 如果没找到  往数据库添加数据
      await userService.insertUser([_username,_userpwd,_nickname])
      .then( (res)=>{
        console.log(res,'+++++++');
        if(res.affectedRows !== 0) {
          ctx.body = {
            code: 200,
            data: 'success',
            mess: '注册成功'
          }
        } else {
          ctx.body = {
            code: 2000,
            data: result,
            mess: '注册失败'
          }
        }
        
      })
      .catch(err => {
        ctx.body = {
          code: 2000,
          data: err
        }
      })
    }
  })
})

// 列表接口
// router.post('/findNoteListByType', async (ctx, next) => {
//   // 拿到前端传过的参数，去数据库搜索与之匹配的数据返回给前端，有则返回数据，没则返回空
//   let _notetype = ctx.request.body.note_type
//   // console.log(_notetype);
//   await userService.catchData(_notetype).then(res => {
//     // console.log(res);
//     if(res.length) {
//       let result = {res}
//       ctx.body = {
//         code: 200,
//         data:result
//       }
//     } else return
//   })
// })
module.exports = router
